package com.cskaoyan.dao;

import com.cskaoyan.vo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserDao {

    // 传递单个参数
    User selectUserByName(String name);

    // 传递多个参数
    List<User> selectListByNameOrAge(@Param(value = "name") String name,
                                     @Param(value = "age") Integer age);

    // 使用对象传参
    List<User> selectListByUser(@Param(value = "user") User user);

    Integer insertUser(User user);

    // 使用map传参
    List<User> selectListByMap(Map<String,Object> map);

    // 混合传参
    List<User> selectListByMixedParam(@Param("id") Integer id,
                                      @Param("map") Map<String,Object> map,
                                      @Param("user") User user);

    // 根据位置传参
    List<User> selectListByIndex(String name,Integer age);

    List<User> selectListByIndex2(String name,Integer age);

    // 测试# 和 $
    List<User> selectBy$(@Param("tableName") String tableName,
                         @Param("user") User user1,
                         @Param("orderBy") String orderBy);
}
